package generadorDeDatos;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.Random;

//insert into movimientosrodeos values(1,0,1,0,0,0)
//insert into movimientosrodeos values(2,1,2,0,0,0)
//insert into movimientosrodeos values(3,4,1,0,0,0)
//insert into movimientosrodeos values(4,2,0,0,0,0)
//CREATE TABLE MovimientosRodeos(
//		idMovimiento int NOT NULL,
//		nacimientos int NOT NULL,
//		muertes int NOT NULL,
//		abortos int NOT NULL,
//		transfDescarte int NOT NULL,
//		transfRodeos int NOT NULL)


//		rodeoATransf     			atributo nuevo!!

//
//insert into movimientosporrodeo values(1,1,1,'1/1/2011')
//insert into movimientosporrodeo values(1,2,2,'2/1/2011')
//insert into movimientosporrodeo values(1,3,3,'3/1/2011')
//insert into movimientosporrodeo values(1,4,4,'4/1/2011')
//CREATE TABLE [dbo].[MovimientosPorRodeo](
//		[idRodeo] [int] NOT NULL,
//		[idMovimiento] [int] NOT NULL,
//		[idMovimientosPorRodeo] [int] NOT NULL,
//		[fecha] [datetime] NOT NULL)
//
//insert into RodeosDiarios values(1,1,-2,120,118)
//insert into RodeosDiarios values(2,4,-5,118,113)
//insert into RodeosDiarios values(3,2,1,113,114)
//insert into RodeosDiarios values(4,2,0,114,116)
//CREATE TABLE [dbo].[RodeosDiarios](
//		[idMovimientosPorRodeo] [int] NOT NULL,
//		[ventas] [float] NULL,
//transferido      --> de otro rodeo
//		[saldo] [float] NULL,
//		[existenciaInicial] [float] NULL,
//		[existenciaFinal] [float] NULL)

public class GeneradorRodeoNovillos {

	public static void main(String[] args) {

		Random rand = new Random();
		
		int existenciaInicialR1 = 120;
		int existenciaFinalR1 = 118;
		
		int existenciaInicialR2 = 145;
		int existenciaFinalR2 = 144;
		
		int existenciaInicialR3 = 234;
		int existenciaFinalR3 = 237;
		
		int existenciaInicialR4 = 302;
		int existenciaFinalR4 = 299;
		
		//cant qe se transfiere, salida
		int transfR1 = 0;
		int transfR2 = 0;
		int transfR3 = 0;
		int transfR4 = 0;
	
		//rodeo al q se transfiere
		int rodeoATransf1 = 0;
		int rodeoATransf2 = 0;
		int rodeoATransf3 = 0;
		int rodeoATransf4 = 0;
		
		//cant transferida, entrada
		int transferidoR1 = 0;
		int transferidoR2 = 0;
		int transferidoR3 = 0;
		int transferidoR4 = 0;
		
		//las entradas son aquellos terneros q crecen y pasan a ser novillos
		//no los restamos de los terneros
		//salidas a toros
		int entradasR1, muertesR1, salidasR1, ventasR1, saldoR1;
		int entradasR2, muertesR2, salidasR2, ventasR2, saldoR2;
		int entradasR3, muertesR3, salidasR3, ventasR3, saldoR3;
		int entradasR4, muertesR4, salidasR4, ventasR4, saldoR4;
		
		List<String> fechas = new ArrayList<String>();
		String DATE_FORMAT = "dd/MM/yyyy";
	    SimpleDateFormat sdf =  new SimpleDateFormat(DATE_FORMAT);
	    Calendar c1 = Calendar.getInstance(); // today
	    c1.set(2009, 0, 1);
	    fechas.add("'"+sdf.format(c1.getTime())+"'");
	    for (int i = 0; i < 365; i++) {
	    	c1.add(Calendar.DATE, 1);
	    	fechas.add("'"+sdf.format(c1.getTime())+"'");
		}
		System.out.println(fechas.get(31));		
		
		//LOS DATOS INICIALES NO TIENEN TRANSFERENCIA A OTROS RODEOS
		
		/************************ DIA 1 ****************************************/
		
		System.out.println("--RODEO DE NOVILLOS");
		
		System.out.println("insert into movimientosrodeos values(1, 0, 1, 0, 0, " + transfR1 + ", " + rodeoATransf1 + ")");
		System.out.println("insert into movimientosporrodeo values(1, 1, 1, "+fechas.get(0));
		System.out.println("insert into RodeosDiarios values(1, 1, " + transferidoR1 + ", -2, " + existenciaInicialR1 + ", " + existenciaFinalR1 + ")");
		
		System.out.println("/************************************************************************/");
		
		System.out.println("insert into movimientosrodeos values(2, 0, 1, 0, 0, " + transfR2 + ", " + rodeoATransf2 + ")");
		System.out.println("insert into movimientosporrodeo values(2, 2, 2, "+fechas.get(0));
		System.out.println("insert into RodeosDiarios values(2, 0, " + transferidoR2 + ", -1, " + existenciaInicialR2 + ", " + existenciaFinalR2 + ")");
		
		System.out.println("/************************************************************************/");
		
		System.out.println("insert into movimientosrodeos values(3, 5, 2, 0, 0, " + transfR3 + ", " + rodeoATransf3 + ")");
		System.out.println("insert into movimientosporrodeo values(3, 3, 3, "+fechas.get(0));
		System.out.println("insert into RodeosDiarios values(3, 0, " + transferidoR3 + ", 3, " + existenciaInicialR3 + ", " + existenciaFinalR3 + ")");
		
		System.out.println("/************************************************************************/");
		
		System.out.println("insert into movimientosrodeos values(4, 0, 1, 0, 0, " + transfR4 + ", " + rodeoATransf4 + ")");
		System.out.println("insert into movimientosporrodeo values(4, 4, 4, "+fechas.get(0));
		System.out.println("insert into RodeosDiarios values(4, 2, " + transferidoR4 + ", -3, " + existenciaInicialR4 + ", " + existenciaFinalR4 + ")");
		
		System.out.println("\n"+"--#####################################################################"+"\n");
		
		int i = 5, j=1;
		while(i<=1457){
			entradasR1 = rand.nextInt(6);
			muertesR1 = rand.nextInt(3);
			salidasR1 = rand.nextInt(2);
			ventasR1 = rand.nextInt(3); 
			transfR1 = rand.nextInt(2);
			rodeoATransf1 = rand.nextInt(4);
					
			entradasR2 = rand.nextInt(6);
			muertesR2 = rand.nextInt(3);
			salidasR2 = rand.nextInt(3);
			ventasR2 = rand.nextInt(3); 
			transfR2 = rand.nextInt(2);
			rodeoATransf2 = rand.nextInt(4);
					
			entradasR3 = rand.nextInt(6);
			muertesR3 = rand.nextInt(3);
			salidasR3 = rand.nextInt(2);
			ventasR3 = rand.nextInt(3); 
			transfR3 = rand.nextInt(2);
			rodeoATransf3 = rand.nextInt(4);
					
			entradasR4 = rand.nextInt(6);
			muertesR4 = rand.nextInt(3);
			salidasR4 = rand.nextInt(3);
			ventasR4 = rand.nextInt(3); 
			transfR4 = rand.nextInt(2);
			rodeoATransf4 = rand.nextInt(4);
		
			if (transfR1 == 0 || rodeoATransf1 == 0 || rodeoATransf1 == 1) {
				transfR1 = 0;
				rodeoATransf1 = 0;
			}
			if (transfR2 == 0 || rodeoATransf2 == 0 || rodeoATransf2 == 2) {
				transfR2 = 0;
				rodeoATransf2 = 0;
			}
			if (transfR3 == 0 || rodeoATransf3 == 0 || rodeoATransf3 == 3) {
				transfR3 = 0;
				rodeoATransf3 = 0;
			}
			if (transfR4 == 0 || rodeoATransf4 == 0 || rodeoATransf4 == 4) {
				transfR4 = 0;
				rodeoATransf4 = 0;
			}
				
			if (rodeoATransf1 == 2){
				transferidoR2 += transfR1;
			}
			if (rodeoATransf3 == 2){
				transferidoR2 += transfR3;
			}
			if (rodeoATransf4 == 2){
				transferidoR2 += transfR4;
			}
			if (rodeoATransf1 == 3){
				transferidoR3 += transfR1;
			}
			if (rodeoATransf2 == 3){
				transferidoR3 += transfR2;
			}
			if (rodeoATransf4 == 3){
				transferidoR3 += transfR4;
			}
			if (rodeoATransf1 == 4){
				transferidoR4 += transfR1;
			}
			if (rodeoATransf2 == 4){
				transferidoR4 += transfR2;
			}
			if (rodeoATransf3 == 4){
				transferidoR4 += transfR3;
			}
			if (rodeoATransf2 == 1){
				transferidoR1 += transfR2;
			}
			if (rodeoATransf3 == 1){
				transferidoR1 += transfR3;
			}
			if (rodeoATransf4 == 1){
				transferidoR1 += transfR4;
			}
					
			saldoR1 = entradasR1 - muertesR1 - salidasR1 - ventasR1 - transfR1 + transferidoR2 + transferidoR3 + transferidoR4;
			saldoR2 = entradasR2 - muertesR2 - salidasR2 - ventasR2 - transfR2 + transferidoR1 + transferidoR3 + transferidoR4;
			saldoR3 = entradasR3 - muertesR3 - salidasR3 - ventasR3 - transfR3 + transferidoR1 + transferidoR2 + transferidoR4;
			saldoR4 = entradasR4 - muertesR4 - salidasR4 - ventasR4 - transfR4 + transferidoR1 + transferidoR2 + transferidoR4;
			
			// PARA RODEO NRO 1
			System.out.println("insert into movimientosrodeos values(" + i + ", " + // idMovimiento
				entradasR1 + ", " + 		// nacimientos
				muertesR1 + ", " + 			// muertes
				0 + ", " + 					// abortos
				salidasR1 + ", " + 			// transferencia descarte
				transfR1 + ", " + 			// transferencia rodeo
				rodeoATransf1 + 
			")");

			System.out.println("insert into movimientosporrodeos values(" + 1 + ", " + // idRodeo
				i + ", " + // idMovimiento
				i + ", " + // idMovimientoPorRodeo
				fechas.get(j) + // fecha
			")");

			System.out.println("insert into rodeosdiarios values(" + i + ", " + // idMovimientoPorRodeo
				ventasR1 + ", " + // ventas
				transferidoR1 + ", " + 
				saldoR1 + ", " + // saldo
				existenciaFinalR1 + ", " + // existencia inicial es la exi final del anterior
				(existenciaFinalR1 + saldoR1) + // existencia final mas saldo
			")");

			existenciaFinalR1 = existenciaFinalR1 + saldoR1;
			
			transferidoR1 = 0;
			saldoR1 = 0;

			System.out.println("/************************************************************************/");
			
			// RODEO 2
			i += 1;

			System.out.println("insert into movimientosrodeos values(" + i + ", " + // idMovimiento
				entradasR2 + ", " + // nacimientos
				muertesR2 + ", " + // muertes
				0 + ", " + // abortos
				salidasR2 + ", " + // transferencia descarte
				transfR2 + ", " + // transferencia rodeo
				rodeoATransf2 + 
			")");

			System.out.println("insert into movimientosporrodeo values(" + 2 + ", " + // idRodeo
				i + ", " + // idMovimiento
				i + ", " + // idMovimientoPorRodeo
				fechas.get(j) + // fecha
			")");

			System.out.println("insert into rodeosdiarios values(" + i + ", " + // idMovimientoPorRodeo
				ventasR2 + ", " + // ventas
				transferidoR2 + ", " +
				saldoR1 + ", " + // saldo
				existenciaFinalR2 + ", " + // existencia inicial es la exi final del anterior
				(existenciaFinalR2 + saldoR2) + // existencia final mas saldo
			")");

			existenciaFinalR2 = existenciaFinalR2 + saldoR2;
			
			transferidoR2 = 0;
			saldoR2 = 0;

			System.out.println("/************************************************************************/");
			
			// RODEO 3
			i += 1;

			System.out.println("insert into movimientosrodeos values(" + i + ", " + // idMovimiento
				entradasR3 + ", " + // nacimientos
				muertesR3 + ", " + // muertes
				0 + ", " + // abortos
				salidasR3 + ", " + // transferencia descarte
				transfR3 + ", " + // transferencia rodeo
				rodeoATransf3 + 
			")");

			System.out.println("insert into movimientosporrodeo values(" + 3 + ", " + // idRodeo
				i + ", " + // idMovimiento
				i + ", " + // idMovimientoPorRodeo
				fechas.get(j) + // fecha
			")");

			System.out.println("insert into rodeosdiarios values(" + i + ", " + // idMovimientoPorRodeo
				ventasR3 + ", " + // ventas
				transferidoR3 + ", " +
				saldoR3 + ", " + // saldo
				existenciaFinalR3 + ", " + // existencia inicial es la exi final del anterior
				(existenciaFinalR3 + saldoR3) + // existencia final mas saldo
			")");

			existenciaFinalR3 = existenciaFinalR3 + saldoR3;
			
			transferidoR3 = 0;
			saldoR3 = 0;

			System.out.println("/************************************************************************/");

			
			// RODEO 4
			i += 1;

			System.out.println("insert into movimientosrodeos values(" + i + ", " + // idMovimiento
				entradasR4 + ", " + // nacimientos
				muertesR4 + ", " + // muertes
				0 + ", " + // abortos
				salidasR4 + ", " + // transferencia descarte
				transfR4 + ", " + // transferencia rodeo
				rodeoATransf4 + 
			")");

			System.out.println("insert into movimientosporrodeo values(" + 4 + ", " + // idRodeo
				i + ", " + // idMovimiento
				i + ", " + // idMovimientoPorRodeo
				fechas.get(j) + // fecha
			")");

			System.out.println("insert into rodeosdiarios values(" + i + ", " + // idMovimientoPorRodeo
				ventasR4 + ", " + // ventas
				transferidoR4 + ", " +
				saldoR4 + ", " + // saldo
				existenciaFinalR4 + ", " + // existencia inicial es la exi final del anterior
				(existenciaFinalR4 + saldoR4) + // existencia final mas saldo
			")");

			existenciaFinalR4 = existenciaFinalR4 + saldoR4;
			
			transferidoR4 = 0;
			saldoR4 = 0;

			System.out.println("/************************************************************************/");
			
			i += 1;
			j += 1;
		
		}
	}
}